home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / pc / PNC-ATL1.ZIP / SYSOP / SYSOP.PPS < prev   
Encoding:
Text File  |  1996-09-10  |  4.6 KB  |  120 lines

  1. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  2. ; Sysop PPE for Atlantis v1.0 [Add-On]
  3. ; Written by Jolly Roger.
  4. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  5. ; Please modify it so it suits your needs.
  6. ; If you decide to use one of my functions/code in your own program
  7. ; you MUST mention the original writer in the doc/nfo - That's me :)
  8. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  9. ; The source code is NOT documented, sorry, but I didn't have the time!
  10. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  11. DECLARE FUNCTION RequestKey() STRING
  12. DECLARE PROCEDURE SetupItems(INTEGER TotalItems)
  13. DECLARE PROCEDURE SetNewHighlighted(INTEGER Highlighted, INTEGER Before)
  14. ;────────────────────────────────────────────────────────────────────────────
  15. INTEGER UserSecurity, TotalItemsInMenu, Temp
  16. INTEGER CurrentHighlighted, LastHighlighted
  17. ;────────────────────────────────────────────────────────────────────────────
  18. STRING  ReturnKey
  19. STRING  Items(14), Header, Colors(2)
  20. INTEGER FirstX, FirstY
  21.  
  22.  *$USEFUNCS
  23.  
  24. BEGIN
  25.  
  26.     CurrentHighlighted = 1
  27.     :Start
  28.     STARTDISP FNS
  29.     TotalItemsInMenu = 14
  30.     Colors(1) = "@X07"
  31.     Colors(2) = "@X4F"
  32.     Items(1) = " View the callers logfile                           "
  33.     Items(2) = " View User Activity                                 "
  34.     Items(3) = " Pack The Message Base                              "
  35.     Items(4) = " Re-Activate A Killed Message                       "
  36.     Items(5) = " Quick Message Scan                                 "
  37.     Items(6) = " View A File From The HDD (Any File)                "
  38.     Items(7) = " User Editor                                        "
  39.     Items(8) = " Pack The Users File                                "
  40.     Items(9) = " Exit To Dos From Remote (DOORWAY)                  "
  41.     Items(10) = " Preform A Dos Function (DOES NOT EXIT TO DOS)     "
  42.     Items(11) = " View Who Is OnLine                                "
  43.     Items(12) = " Auto Logoff Node #                                "
  44.     Items(13) = " View Logfile of Node #                            "
  45.     Items(14) = " Drop Node # to DOS                                "
  46.     FirstX = 14
  47.     FirstY = 5
  48.     LastHighlighted = CurrentHighlighted
  49.     PRINT "@X07@CLS@"
  50.     DISPFILE PPEPATH() + "SYSOP.PCB",0
  51.     SetupItems(TotalItemsInMenu)
  52.     SetNewHighlighted(CurrentHighlighted, LastHighlighted)
  53.  
  54. :MainLoop
  55.         
  56.     ReturnKey = RequestKey()
  57.     SELECT CASE (UPPER(ReturnKey))
  58.       CASE "UP","A", "LEFT"
  59.               LastHighlighted = CurrentHighlighted
  60.               IF (CurrentHighlighted = 1) THEN
  61.                 CurrentHighlighted = TotalItemsInMenu
  62.               ELSE
  63.                 CurrentHighlighted = CurrentHighlighted - 1
  64.               END IF
  65.               SetNewHighlighted(CurrentHighlighted, LastHighlighted)
  66.       CASE "DOWN", "Z", "RIGHT"
  67.               LastHighlighted = CurrentHighlighted
  68.               IF (CurrentHighlighted = TotalItemsInMenu) THEN
  69.                 CurrentHighlighted = 1
  70.               ELSE
  71.                 CurrentHighlighted = CurrentHighlighted + 1
  72.               END IF
  73.               SetNewHighlighted(CurrentHighlighted, LastHighlighted)
  74.       CASE CHR(27)
  75.               PRINT "@X07@CLS@"
  76.               NEWLINE
  77.               END
  78.       CASE CHR(13)
  79.               PRINT "@X07@CLS@"
  80.               COMMAND TRUE, STRING(CurrentHighlighted)
  81.               NEWLINE
  82.               WAIT
  83.               GOTO Start
  84.       CASE "HOME"
  85.               LastHighlighted = CurrentHighlighted
  86.               CurrentHighlighted = 1
  87.               SetNewHighlighted(CurrentHighlighted, LastHighlighted)
  88.       CASE "END"
  89.               LastHighlighted = CurrentHighlighted
  90.               CurrentHighlighted = TotalItemsInMenu
  91.               SetNewHighlighted(CurrentHighlighted, LastHighlighted)
  92.     END SELECT
  93.     GOTO MainLoop
  94. END
  95.  
  96. FUNCTION RequestKey() STRING
  97.   LET ReturnKey = ""
  98.   WHILE (ReturnKey = "") DO 
  99.     LET ReturnKey = INKEY()
  100.     IF (ReturnKey = "BADKEY") ReturnKey = ""
  101.   ENDWHILE
  102.   RequestKey = ReturnKey
  103. ENDFUNC
  104.  
  105. PROCEDURE SetupItems(INTEGER TotalItems)
  106.   FOR Temp = 1 TO TotalItems
  107.    ANSIPOS FirstX, FirstY + Temp - 1
  108.    PRINT Colors(1) + Items(Temp)
  109.   NEXT
  110. END PROC
  111.  
  112. PROCEDURE SetNewHighlighted(INTEGER Highlighted, INTEGER Before)
  113.  ANSIPOS FirstX, FirstY + Before - 1
  114.    PRINT Colors(1) + Items(Before)
  115.  ANSIPOS FirstX, FirstY + Highlighted - 1
  116.    PRINT Colors(2) + Items(Highlighted)
  117.  ANSIPOS FirstX, FirstY + Highlighted - 1
  118. END PROC
  119. END
  120.